iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
AI & Data

30天了解醫學信號辨識是怎麼回事?系列 第 12

Day- 12學習使用MATLAB或Python進行基本信號處理-Python篇。

  • 分享至 

  • xImage
  •  

Python相比以前使用0、1來編程的時代可閱讀性提高,語法更接近自然語言,因此容易理解和記憶,讓初學者可以快速入門。並且它的資源都是開源和免費資料,Python可以應用在很多領域及跨平台使用,而在這裡,它可以幫助你處理和分析各種信號,例如音頻、圖像和生物信號。下面是一個簡單的Python信號處理過程,幫助你開始進行基本的信號處理操作。

1. 安裝Python和必要的套件

安裝Python,可以從Python官方網站(https://www.python.org/downloads/)進行安裝,或是使用其他編程環境套件,我個人是使用Anaconda(https://www.anaconda.com/download)。此外,需要安裝一些用於信號處理的Python套件,如NumPy、SciPy和Matplotlib。你可以使用pip來安裝這些資料庫:

pip install numpy scipy matplotlib

或是在Anaconda中可以直接搜尋想要的套件進行安裝

https://ithelp.ithome.com.tw/upload/images/20230922/20162135rM9BEfVl3u.jpg

2. 創建範例信號

首先,讓我們創建範例信號,例如正弦波:

import numpy as np

# 創建一個正弦波信號
t = np.arange(0, 2*np.pi, 0.01)  # 時間範圍
f = 1  # 頻率(1 Hz)
A = 1  # 振幅
x = A * np.sin(2*np.pi*f*t)  # 正弦波信號

3. 繪製信號

你可以使用Matplotlib套件來繪製信號:

import matplotlib.pyplot as plt

plt.plot(t, x)
plt.title('正弦波信號')
plt.xlabel('時間(秒)')
plt.ylabel('振幅')
plt.grid(True)
plt.show()

4. 進行基本信號處理操作

Python提供了豐富的信號處理套件資料庫,如SciPy,使你能夠執行各種操作,例如傅立葉變換、濾波、噪聲去除等等。

  • 傅立葉變換:
from scipy.fft import fft

X = fft(x)  # 執行傅立葉變換

  • 濾波:
from scipy.signal import butter, lfilter

# 設計一個低通濾波器
fs = 1000  # 采樣率
fc = 50  # 截止頻率
b, a = butter(4, fc / (fs/2), 'low')  # 設計低通濾波器
filtered_signal = lfilter(b, a, x)  # 對信號進行濾波

這只是信號處理的入門,Python提供了許多工具和資源,可用於更高級的信號處理操作。


上一篇
Day- 11學習使用MATLAB或Python進行基本信號處理-MATLAB篇。
下一篇
Day- 13心電圖(ECG)信號辨識技術。
系列文
30天了解醫學信號辨識是怎麼回事?30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言